"""
宾州担忧问卷（Penn State Worry Questionnaire, PSWQ）是一种常用的自评量表，用于评估个体的担忧水平。
PSWQ包含16个问题，每个问题的得分范围是1到5分，总分范围是16到80分。根据总分，可以将担忧水平分为几个等级。
1,3,8,10，11是反向记分问题
"""
class PSWQ:
    def __init__(self, answers):
        self.answers = answers
        self.total_score = 0

    def calculate_score(self):
        reverse_questions = [1, 3, 8, 10, 11]
        for i in range(1, 17):
            score = int(self.answers[f'q{i}'])
            if i in reverse_questions:
                score = 6 - score  # 反向计分（1-5分反向计分为5-1分）
            self.total_score += score

    def get_worry_level(self):
        if self.total_score <= 30:
            return '低担忧水平'
        elif 31 <= self.total_score <= 45:
            return '中等担忧水平'
        else:
            return '高担忧水平'

    def get_scores(self):
        return self.total_score, self.get_worry_level()

# # 示例使用
# answers = {
#     'q1': '3',
#     'q2': '2',
#     'q3': '1',
#     'q4': '5',
#     'q5': '2',
#     'q6': '1',
#     'q7': '3',
#     'q8': '2',
#     'q9': '1',
#     'q10': '5',
#     'q11': '3',
#     'q12': '2',
#     'q13': '1',
#     'q14': '5',
#     'q15': '2',
#     'q16': '1'
# }
#
# pswq = PSWQ(answers)
# pswq.calculate_score()
# total_score, worry_level = pswq.get_scores()
# print("Total Score:", total_score)
# print("Worry Level:", worry_level)